package com.styletransfer.model;

import java.util.Date;

/**
 * 风格组合详情实体类
 * 
 * 这个类对应数据库中的combination_detail表，用于存储组合中包含的风格及其权重。
 * 每个组合可以包含多个风格，每个风格有不同的权重，共同构成一个风格组合。
 * 每个属性都与数据库表中的列相对应。
 */
public class CombinationDetail {
    
    private Long id;             // 详情ID，主键
    private Long combinationId;  // 组合ID
    private Long styleId;        // 风格ID
    private Double weight;       // 权重，范围0-1，所有风格权重之和为1
    private Integer displayOrder;       // 排序顺序
    private Date createTime;     // 创建时间
    private Date updateTime;     // 更新时间
    
    // 非数据库字段，用于前端展示
    private Style style;         // 风格信息
    
    // 构造函数
    public CombinationDetail() {
    }
    
    // Getters and Setters
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public Long getCombinationId() {
        return combinationId;
    }
    
    public void setCombinationId(Long combinationId) {
        this.combinationId = combinationId;
    }
    
    public Long getStyleId() {
        return styleId;
    }
    
    public void setStyleId(Long styleId) {
        this.styleId = styleId;
    }
    
    public Double getWeight() {
        return weight;
    }
    
    public void setWeight(Double weight) {
        this.weight = weight;
    }
    
    public Integer getDisplayOrder() {
        return displayOrder;
    }
    
    public void setDisplayOrder(Integer displayOrder) {
        this.displayOrder = displayOrder;
    }
    
    public Date getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    public Date getUpdateTime() {
        return updateTime;
    }
    
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    public Style getStyle() {
        return style;
    }
    
    public void setStyle(Style style) {
        this.style = style;
    }
    
    @Override
    public String toString() {
        return "CombinationDetail{" +
                "id=" + id +
                ", combinationId=" + combinationId +
                ", styleId=" + styleId +
                ", weight=" + weight +
                ", displayOrder=" + displayOrder +
                '}';
    }
}
